/*
 * @features: 战斗类的所有基类
 * @description: 说明
 * @Date: 2020-08-13 14:32:06
 * @Author: judu233(769471424@qq.com)
 * @LastEditTime: 2020-08-29 20:04:01
 * @LastEditors: judu233
 */


const { ccclass, property } = cc._decorator;


/**  
    * @Title : 战斗类的所有基类
    * @Description : 类说明
 **/
@ccclass
export default class Base extends cc.Component {
    /**数据 */
    protected data: any;

    /**类名 */
    protected className: string;

    constructor() {
        super();
        this.className = this.constructor.name;
    }

    /**
     * 检查数据是否建立,并且设置数值 
     * @param call 检查成功后的回调
     */
    protected checkSet(call: Function) {
        if (CC_EDITOR) return;
        if (this.data) {
            if (call) call();
        } else {
            cc.error(`[${this.className}]数据data未建立,set数据失败`);
        }
    }

    /**
     * 检查数据是否建立，并且获取数值 
     * @param call 检查成功后的回调
     */
    protected checkGet(call: Function) {
        if (CC_EDITOR) return;
        if (this.data) {
            if (call) return call();
        }
        else {
            cc.error(`[${this.className}]数据data未建立,get数据失败`);
            return null;
        }
    }

}
